#include <bits/stdc++.h>
#include "graph.h"
#define _for(i, a, b)  for (int i = (a); i <= (b); i ++ )
using namespace std;
const int N = 205, inf = 1e9 + 5;
int u = 1, flag, n, col[N], bel[N], vis[N], deg[N], ans[N], f[N][N]; vector<int> G[N];
inline void add_edge(int u, int v) { G[u].push_back(v), G[v].push_back(u); }
int dfs(int pre, int lst_road) {
	u = ++ n, add_edge(u, pre); int lst, c, t;
	_for (i, 1, deg[u])  if (i ^ lst_road) {
		Move(i, n), lst = LastRoad();
		if ((c = Color()) > 0)  add_edge(u, c);
		t = dfs(u, lst), Move(lst, t);
	} return u;
}
inline void Inspect(int R) {
	freopen("graph1.in", "r", stdin);
	freopen("graph.out", "w", stdout);
	dfs(0, 0);
	_for (i, 1, n)  _for (j, 1, n)  f[i][j] = inf;
	_for (i, 1, n) {
		f[i][i] = 0;
		for (int j : G[i])  f[i][j] = 1;
	} _for (k, 1, n)  _for (i, 1, n)  _for (j, 1, n)  f[i][j] = min(f[i][j], f[i][k] + f[k][j]);
	_for (i, 1, n)  _for (j, i + 1, n)  if (f[i][j] < inf)  ans[f[i][j]] ++ ;
	_for (i, 1, R)  Answer(i, ans[i]);
}

